{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import igraph as ig\n",
    "import matplotlib.pyplot as plt\n",
    "import random"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 构建两维6*6的格子树\n",
    "g = ig.Graph.Lattice([6, 6], circular=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 对该图计算两维布局\n",
    "layout = g.layout(\"grid\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 重新排列顶点 ID 并计算一个新的布局\n",
    "random.seed(0)\n",
    "permutation = list(range(g.vcount()))\n",
    "random.shuffle(permutation)\n",
    "g = g.permute_vertices(permutation)\n",
    "new_layout = g.layout(\"grid\")\n",
    "for i in range(36):\n",
    "    new_layout[permutation[i]] = layout[i]\n",
    "layout = new_layout"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 生成树\n",
    "spanning_tree = g.spanning_tree(weights=None, return_tree=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 高亮绘制生成树\n",
    "g.es[\"color\"] = \"lightgray\"\n",
    "g.es[spanning_tree][\"color\"] = \"midnightblue\"\n",
    "g.es[\"width\"] = 0.5\n",
    "g.es[spanning_tree][\"width\"] = 3.0\n",
    "\n",
    "fig, ax = plt.subplots()\n",
    "ig.plot(\n",
    "    g,\n",
    "    target=ax,\n",
    "    layout=layout,\n",
    "    vertex_color=\"lightblue\",\n",
    "    edge_width=g.es[\"width\"]\n",
    ")\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3.10.6 ('py310')",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.6"
  },
  "orig_nbformat": 4,
  "vscode": {
   "interpreter": {
    "hash": "49ec5068d4d6d3736c39d3918a16f1ca551a23384109b69898c01c2015d1370c"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
